exhaustive check